import java.util.HashMap;
import java.util.HashSet;

/**
 * @Description:判断一个数的数字计数是否等于数位的值 给你一个下标从 0 开始长度为 n 的字符串 num ，它只包含数字。
 * 如果对于 每个 0 <= i < n 的下标 i ，都满足数位 i 在 num 中出现了 num[i]次，
 * 那么请你返回 true ，否则返回 false 。
 * @Date:Create in 21:19  2022/6/14
 */
public class digitCount2283 {

    public static void main(String[] args) {
        String nums = "1210";
        System.out.println(digitCount1(nums));
    }


    public static boolean digitCount1(String num) {
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < num.length(); i++) {
            int a = Integer.parseInt((String.valueOf(num.charAt(i))));
            if (!map.containsKey(a)) {
                map.put(a, 1);
            } else {
                int value = map.get(a);
                value += 1;
                map.replace(a, value);
            }
        }
        for (int j = 0; j < num.length(); j++) {
            int b = Integer.parseInt((String.valueOf(num.charAt(j))));

            if(map.get(j)==null){
                map.put(j,0);
            }
            if (b!=map.get(j)) {
                return false;
            }
        }

        return true;
    }
}
